#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char const *argv[])
{
    // 1、创建一个无名管道
    int pipefd[2] = {0};
    int ret = pipe(pipefd);
    if (-1 == ret)
    {
        printf("创建无名管道失败!\n");
        return -1;
    }
    
    // 2、创建父子进程
    pid_t pid = fork();
    if (pid == 0)   // 子进程，输入数据(写)
    {
        while (1)   
        {
            char buf[1024] = {0};
            printf("请输入要对父进程说的话!\n");
            scanf("%s", buf);
            write(pipefd[1], buf, strlen(buf));
        }
        return 0;
    }

    if (pid > 0)   // 父进程，输出数据(读)
    {
        while (1)   
        {
            char buf[1024] = {0};
            read(pipefd[0], buf, sizeof(buf));
            printf("读取到的管道数据：%s\n", buf);
        }
        return 0;  
    }

    
    
    return 0;
}
